from wxpy import *  #这里首先导入微信的第3方库
import matplotlib.pyplot as plt #这里导入饼图绘制的库 因为库名称太长，我们取了一个别名plt

# 初始化一个机器人对象
# cache_path缓存路径，给定值为第一次登录生成的缓存文件路径
bot = Bot(cache_path=r"C:\Users\9day\PycharmProjects\weixinpp\temp\wxpy.pkl")
#这一行是为了让程序调试期间，不至于每次启动程序都扫码登录一次，太繁琐，所以讲登录信息缓存在这个路径下边
#如果在初始化机器人时，不采用这个缓存，那么每次运行程序都得扫码一次
#好的，本节视频介绍到此



# 机器人账号自身
myself = bot.self

friends = bot.friends(update=False)   #获取更新好友列表

male = female = other = 0  #初始化男、女、其他3个变量的值为0

#使用循环依次判断每个好友的性别
for i in friends[1:]:     #[1:]是因为整个好友列表里面自己市在第一个，排除掉
    sex = i.sex
    if sex == 1:#如果性别是1，代表是男性
        male += 1
    elif sex == 2:#如果性别是2，代表是女性
        female += 1
    else:#否则可能好友没有填写自己的性别信息
        other += 1
total = len(friends[1:])   #计算总数

#embed()


# 以饼图形式表现分析结果
# 切片将按逆时针方向排列和绘制

labels = '男', '女', '其他'#设置饼图每个切片的标签
sizes = [male, female, other]#设置饼图每个切片的数值 将刚才获取到的3个变量存储到此处的序列中sizes
colors = ['lightskyblue', 'hotpink', 'yellowgreen']#设置饼图每个切片的颜色
explode = (0.0, 0.0, 0.1)  #用来指定每部分的偏移量

#这里如果是要显示中文标题，一定要设置这个属性，否则中文将显示乱码
plt.rcParams['font.sans-serif'] = ['SimHei']#让Matplotlib 显示中文
plt.title('微信中好友男女比例', size=16)#窗口标题
#这里的后边3个参数具体的含义，可以到网络上查询饼图库的官方文档
plt.pie(sizes, explode=explode, labels=labels, colors=colors,
        autopct='%1.1f%%', shadow=True, startangle=90)

# 将纵横比设置为相等，以便饼图是一个圆形
plt.axis('equal')
plt.legend(loc='upper right')#显示图例
#plt.savefig('D:\\pie.png')
plt.show()

#其余代码显而易见，我们现在运行一下代码